package com.masterrabbit.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.masterrabbit.common.core.annotation.Excel;
import com.masterrabbit.common.core.web.domain.BaseEntity;

/**
 * 商户信息审核对象 merchant_reviews
 * 
 * @author ruoyi
 * @date 2025-03-19
 */
@Data
public class MerchantReviews extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 审核记录ID（自增） */
    private Long reviewId;

    /** 商户ID（关联merchants表） */
    @Excel(name = "商户ID", readConverterExp = "关=联merchants表")
    private Long merchantId;

    /** 商户编号（商家ID） */
    @Excel(name = "商户编号", readConverterExp = "商=家ID")
    private Long merchantCode;

    /** 负责人姓名 */
    @Excel(name = "负责人姓名")
    private String contactName;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String idCardNumber;

    /** 营业执照编号 */
    @Excel(name = "营业执照编号")
    private String businessLicenseNumber;

    /** 店名 */
    @Excel(name = "店名")
    private String shopName;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phoneNumber;

    /** 经营区域 */
    @Excel(name = "经营区域")
    private String businessArea;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String detailedAddress;

    /** 身份证正反照ID（外键图片ID） */
    @Excel(name = "身份证正反照ID", readConverterExp = "外=键图片ID")
    private Long idCardImageId;

    /** 营业执照照片ID（外键图片ID） */
    @Excel(name = "营业执照照片ID", readConverterExp = "外=键图片ID")
    private Long businessLicenseImageId;

    /** 门面照片ID（外键图片ID） */
    @Excel(name = "门面照片ID", readConverterExp = "外=键图片ID")
    private Long storefrontImageId;

    /** 经度 */
    @Excel(name = "经度")
    private BigDecimal longitude;

    /** 纬度 */
    @Excel(name = "纬度")
    private BigDecimal latitude;

    /** 审核状态（0-待审核 1-审核通过 2-审核拒绝） */
    @Excel(name = "审核状态", readConverterExp = "0=-待审核,1=-审核通过,2=-审核拒绝")
    private Long auditStatus;

    /** 营业时间 */
    @Excel(name = "营业时间")
    private String businessHours;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 店铺余额 */
    @Excel(name = "店铺余额")
    private BigDecimal shopBalance;

    /** 审核人ID（外键，关联审核管理员） */
    @Excel(name = "审核人ID", readConverterExp = "外=键，关联审核管理员")
    private Long reviewerId;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd  HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;

    /** 提交审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd  HH:mm:ss")
    @Excel(name = "提交审核时间", width = 30, dateFormat = "yyyy-MM-dd  HH:mm:ss")
    private Date submitTime;

    private SysUser sysUser1;

    private SysUser sysUser2;

    public void setReviewId(Long reviewId) 
    {
        this.reviewId = reviewId;
    }

    public Long getReviewId() 
    {
        return reviewId;
    }

    public void setMerchantId(Long merchantId) 
    {
        this.merchantId = merchantId;
    }

    public Long getMerchantId() 
    {
        return merchantId;
    }

    public void setMerchantCode(Long merchantCode) 
    {
        this.merchantCode = merchantCode;
    }

    public Long getMerchantCode() 
    {
        return merchantCode;
    }

    public void setContactName(String contactName) 
    {
        this.contactName = contactName;
    }

    public String getContactName() 
    {
        return contactName;
    }

    public void setIdCardNumber(String idCardNumber) 
    {
        this.idCardNumber = idCardNumber;
    }

    public String getIdCardNumber() 
    {
        return idCardNumber;
    }

    public void setBusinessLicenseNumber(String businessLicenseNumber) 
    {
        this.businessLicenseNumber = businessLicenseNumber;
    }

    public String getBusinessLicenseNumber() 
    {
        return businessLicenseNumber;
    }

    public void setShopName(String shopName) 
    {
        this.shopName = shopName;
    }

    public String getShopName() 
    {
        return shopName;
    }

    public void setPhoneNumber(String phoneNumber) 
    {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() 
    {
        return phoneNumber;
    }

    public void setBusinessArea(String businessArea) 
    {
        this.businessArea = businessArea;
    }

    public String getBusinessArea() 
    {
        return businessArea;
    }

    public void setDetailedAddress(String detailedAddress) 
    {
        this.detailedAddress = detailedAddress;
    }

    public String getDetailedAddress() 
    {
        return detailedAddress;
    }

    public void setIdCardImageId(Long idCardImageId) 
    {
        this.idCardImageId = idCardImageId;
    }

    public Long getIdCardImageId() 
    {
        return idCardImageId;
    }

    public void setBusinessLicenseImageId(Long businessLicenseImageId) 
    {
        this.businessLicenseImageId = businessLicenseImageId;
    }

    public Long getBusinessLicenseImageId() 
    {
        return businessLicenseImageId;
    }

    public void setStorefrontImageId(Long storefrontImageId) 
    {
        this.storefrontImageId = storefrontImageId;
    }

    public Long getStorefrontImageId() 
    {
        return storefrontImageId;
    }

    public void setLongitude(BigDecimal longitude) 
    {
        this.longitude = longitude;
    }

    public BigDecimal getLongitude() 
    {
        return longitude;
    }

    public void setLatitude(BigDecimal latitude) 
    {
        this.latitude = latitude;
    }

    public BigDecimal getLatitude() 
    {
        return latitude;
    }

    public void setAuditStatus(Long auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public Long getAuditStatus() 
    {
        return auditStatus;
    }

    public void setBusinessHours(String businessHours) 
    {
        this.businessHours = businessHours;
    }

    public String getBusinessHours() 
    {
        return businessHours;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setShopBalance(BigDecimal shopBalance) 
    {
        this.shopBalance = shopBalance;
    }

    public BigDecimal getShopBalance() 
    {
        return shopBalance;
    }

    public void setReviewerId(Long reviewerId) 
    {
        this.reviewerId = reviewerId;
    }

    public Long getReviewerId() 
    {
        return reviewerId;
    }

    public void setReviewTime(Date reviewTime) 
    {
        this.reviewTime = reviewTime;
    }

    public Date getReviewTime() 
    {
        return reviewTime;
    }

    public void setSubmitTime(Date submitTime) 
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime() 
    {
        return submitTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("reviewId", getReviewId())
            .append("merchantId", getMerchantId())
            .append("merchantCode", getMerchantCode())
            .append("contactName", getContactName())
            .append("idCardNumber", getIdCardNumber())
            .append("businessLicenseNumber", getBusinessLicenseNumber())
            .append("shopName", getShopName())
            .append("phoneNumber", getPhoneNumber())
            .append("businessArea", getBusinessArea())
            .append("detailedAddress", getDetailedAddress())
            .append("idCardImageId", getIdCardImageId())
            .append("businessLicenseImageId", getBusinessLicenseImageId())
            .append("storefrontImageId", getStorefrontImageId())
            .append("longitude", getLongitude())
            .append("latitude", getLatitude())
            .append("auditStatus", getAuditStatus())
            .append("businessHours", getBusinessHours())
            .append("userId", getUserId())
            .append("shopBalance", getShopBalance())
            .append("reviewerId", getReviewerId())
            .append("reviewTime", getReviewTime())
            .append("submitTime", getSubmitTime())
            .toString();
    }
}
